/**
 * DefaultRadiusServerMBean.java 11.11.2006
 */
package org.dicr.radius.server.impl;

import org.dicr.radius.*;
import org.dicr.radius.channel.*;
import org.dicr.radius.server.*;

/**
 * @author <A href='http://dicr.org'>Igor A Tarasov</A>
 * @version XXXXXX
 */
public interface DefaultRadiusServerMBean extends RadiusServer {

	/**
	 * @see org.dicr.radius.RadiusServer#addChannel(org.dicr.radius.channel.ServerChannel)
	 */
	@Override
	public void addChannel(ServerChannel channel);

	/**
	 * @see org.dicr.radius.RadiusServer#getRequestHandler()
	 */
	@Override
	public RequestHandler getRequestHandler();

	/**
	 * @see org.dicr.radius.RadiusServer#getRequestsQueue()
	 */
	@Override
	public RequestsQueue getRequestsQueue();

	/**
	 * @see org.dicr.radius.RadiusServer#isRunning()
	 */
	@Override
	public boolean isRunning();

	/**
	 * Remove channel from server
	 * 
	 * @param channel
	 *            channel to remove
	 */
	public void removeChannel(ServerChannel channel);

	/**
	 * @see org.dicr.radius.RadiusServer#setRequestHandler(org.dicr.radius.RequestHandler)
	 */
	@Override
	public void setRequestHandler(RequestHandler handler);

	/**
	 * @see org.dicr.radius.RadiusServer#setRequestsQueue(org.dicr.radius.server.RequestsQueue)
	 */
	@Override
	public void setRequestsQueue(RequestsQueue queue);

	/**
	 * @see org.dicr.radius.RadiusServer#startServer()
	 */
	@Override
	public void startServer();

	/**
	 * @see org.dicr.radius.RadiusServer#stopServer()
	 */
	@Override
	public void stopServer();

}
